var appId = 'qwertyuiopasdfgh'//微信公众号appId

var wxdata = {
    wx_account: new Array(4),
    // wx_myuser: new Array(appid),

    jsapi_ticket: "", // 凭证
    ticket_expires_in: "", // 凭证过期时间 单位：s

    // // 获取jsapi_ticket
    // // *注意* 经过实际开发测试，微信分享不支持跨域请求，因此获取jsapi_ticket的请求必须从服务器发起，否则无法获取到jsapi_ticket
    get_jsapi_ticket: function () {
        $.ajax({
            type: "get",
            url: "http://cp.test.dlbxjj.com/dlbx_zc/payvoucher/wxapi/getAjaxJsapiTicket.chtml",//请求后台接口，获取ticket
            dataType: "jsonp",
            cache: false,
            // async: false,
            jsonp: 'callback',
            success: function (msg) {
                if (msg.errcode == 0) {
                    wxdata.jsapi_ticket = msg.ticket; // 需要缓存，存活时间ticket_expires_in  默认为7200s
                    wxdata.ticket_expires_in = msg.expires_in; // 过期时间 单位：s
                    wxdata.wx_account[3] = wxdata.create_signature(noncestr, wxdata.jsapi_ticket, timestamp, localLink);
                    console.log("get jsapi_ticket  success");
                    share();
					
                } else {
                    console.log("get jsapi_ticket  fail");
                }
            },
            error: function (msg) {
                console.log("get jsapi_ticket  error!!! ");
            }
        });
    },
    // 数据签名 
    create_signature: function (nocestr, ticket, timestamp, localLink) {
        var signature = "";
        // 这里参数的顺序要按照 key 值 ASCII 码升序排序
        var sign = "jsapi_ticket=" + ticket + "&noncestr=" + nocestr + "&timestamp=" + timestamp + "&url=" + localLink;
        var e=decodeURIComponent(sign).split("#")[0],s=new jsSHA(e,"TEXT"),t=s.getHash("SHA-1","HEX");
        // var e=decodeURIComponent('jsapi_ticket=HoagFKDcsGMVCIY2vOjf9vD-_r9h7bAZb3s0EXAiWQ9JM2XJ64KOCCZHhCFUGLRvYk1OQdx7darTyCjqEQNh2g&noncestr=hbbckdjgdbbajidb&timestamp=1562657159&url=http://cp.test.dlbxjj.com/dl/unicomSecond/unicomSecondA.html?Y3NDb2RlPUtIMTAwM19GQTAwMDAwMg==').split("#")[0],s=new jsSHA(e,"TEXT"),t=s.getHash("SHA-1","HEX");
        return t;
    },

    // 自定义创建随机串 自定义个数0 < ? < 32 
    create_noncestr: function () {
        var str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        var val = "";
        for (var i = 0; i < 16; i++) {
            val += str.substr(Math.round((Math.random() * 10)), 1);
        }
        return val;
    },

    // 自定义创建时间戳
    create_timestamp: function () {
        return new Date().valueOf();
    }

}


//  -----  开始 ------  //获取数据签名
var timestamp = wxdata.create_timestamp(); // timestamp时间戳
var noncestr = wxdata.create_noncestr(); // noncestr随机字符串
var localLink = window.location.href.split('#'); //获取当前连接

wxdata.get_jsapi_ticket();  
wxdata.wx_account[0] = appId; // appid
wxdata.wx_account[1] = timestamp; // timestamp
wxdata.wx_account[2] = noncestr; // noncestr
function share() {
    var $wx_account = wxdata.wx_account;  // 自定义数据
 

    //配置微信信息
    wx.config({
        debug: false, // true:调试时候弹窗
        appId: $wx_account[0], // 微信appid
        timestamp: $wx_account[1], // 时间戳
        nonceStr: $wx_account[2], // 随机字符串
        signature: $wx_account[3], // 签名
        jsApiList: [
            // 所有要调用的 API 都要加到这个列表中
            'onMenuShareTimeline', // 分享到朋友圈接口
            'onMenuShareAppMessage', //  分享到朋友接口
            'onMenuShareQQ', // 分享到QQ接口
            'onMenuShareWeibo' // 分享到微博接口
        ]
    });
    wx.ready(function () {
        // 微信分享的数据
        var shareData = {
            "imgUrl": '*****', // 分享显示的缩略图地址
            "link": '*****', // 分享地址
            "desc": '*****', // 分享描述
            "title": '*****', // 分享标题
            success: function () {
                // 分享成功可以做相应的数据处理
                //alert("分享成功");  
            }
        };
        wx.onMenuShareTimeline(shareData);
        wx.onMenuShareAppMessage(shareData);
        wx.onMenuShareQQ(shareData);
        wx.onMenuShareWeibo(shareData);
    });


    wx.error(function (res) {
        // config信息验证失败会执行error函数，如签名过期导致验证失败，
        // 具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，
        //对于SPA可以在这里更新签名。 
        console.log("好像出错了！！");
    });
}

